Three-Dimensional Perceptions in Haptic Systems

ABSTRACT

An acoustic field may be produced from a transducer array having known relative positions and orientations In this acoustic field, one or more control points may be defined. An amplitude may be assigned to the control point. Mid-air haptic effect for a virtual object on a human body part may be generated by moving the control point in a single closed curve comprising a plurality of curve segments. The single closed curve traverses at least one location where the human body part intersects with the virtual object. Additionally, a user may interact with virtual three-dimensional content using the user&#39;s hands while a tracking system monitoring the user&#39;s hands, a physics engine updates the properties of the virtual three-dimensional content and a haptic feedback system provides haptic information to the user.

RELATED APPLICATION

This application claims the benefit of the following four U.S. Provisional Patent Applications, all of which are incorporated by reference in their entirety:

1) Ser. No. 62/370,522, filed on Aug. 3, 2016;

2) Ser. No. 62/370,786, filed on Aug. 4, 2016;

3) Ser. No. 62/370,865, filed on Aug. 4, 2016; and

4) Ser. No. 62/397,419, filed on Sep. 21, 2016.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to improved techniques for perception of simulated three-dimensional objects and generation of three-dimensional sound in haptic-based systems.

BACKGROUND

A continuous distribution of sound energy, referred to as an “acoustic field” may be used for a range of applications including haptic feedback in mid-air. Such an acoustic field may be produced from a transducer array having known relative positions and orientations In this acoustic field, one or more control points may be defined. Such control points may have a known spatial relationship relative to the transducer array.

These control points may be assigned an amplitude and then amplitude-modulated with a signal and as a result produce vibro-tactile feedback in mid-air. An alternative method to produce feedback is to create control points that are not modulated in amplitude and move them around spatially to create “spatio-temporal” modulation that can be felt.

These control points are effectively concentrations of ultrasonic energy and moving them around generates disturbances in the air. By spatially modulating these disturbances created by ultrasonic foci, simply moving them backwards and forwards, it is possible to generate low frequency sound through the principle of acoustic radiation force as the focus pushes on the air or other materials around it.

Furthermore, very sudden disturbances are created when such focus points are quickly created or destroyed without slowly increasing or decreasing the amplitude. This creates pops or clicks which are often an unwanted side effect. Moving the control point can be used to achieve similar effects to changing the amplitude, but without the sharp changes in pressure that cause pops and clicks. This means that moving the control point is much more preferable than changing its amplitude. Due to the speed of sound being generally faster than the control point motion, this enables any generated pressure imbalances to dissipate, so the control point may be moved quickly without creating powerful air disturbances.

When considering the intersections between human hands and virtual objects, each finger and the palm in many instances feel a very small part of the overall shape that go towards the appreciation of the whole. Thus, when the hand feels a small part of the shape intersection the whole shape intersection must be created in order to not create and destroy the necessary control points. If the control points were created and destroyed such that they provide only the small part of the intersection, this would create unwanted noise. A more economical method of describing a shape therefore would save power and time and would then enable more of the power expended by the device to be used in creating haptic feedback in places which are touched by a hand.

Due to cross-modal and other perceptual effects, the induction of touch sensations through mid-air haptics remains surprisingly effective at communicating the existence, geometry and surface properties of objects. Fundamentally, although much research concentrates on exploration through touch alone, the effective use of these system is primarily used and driven through systems that cross multiple sensory modalities to provide an experience. For this reason, there exist in practice simple but conceptually complicated effects that can only be achieved through the realization of these underlying principles.

Furthermore, with mid-air haptic devices, virtual objects may be theoretically recreated in mid-air for the user to touch. But due to the nature of mid-air feedback, some fundamental physical limitations exist. This is because there are some parts of the somatosensory system that cannot be directly manipulated by the device, for example thermoreceptors for temperature sensing. But finding an optimal method to map output from the device—which necessarily has strengths and weaknesses peculiar to mid-air haptics—onto simulated physical interactions with virtual objects has been difficult. It is therefore valuable to develop an approach that is readily accepted by a human as corresponding to a plausible interaction with the object. Similarly, it is useful to manipulate focus point spinning in the air to generate a sound wave each time it moves along a path.

BRIEF DESCRIPTION OF THE FIGURES

The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate embodiments of concepts that include the claimed invention, and explain various principles and advantages of those embodiments.

FIG. 1 is a representation of a hand interacting with a virtual cube in accordance with some embodiments.

FIG. 2 is a representation of a control point moving in air that generates sound waves in accordance with some embodiments.

Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.

The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.

DETAILED DESCRIPTION

The solution described herein involving touch and aural interactions with virtual objects has properties that may be used in combination or separately.

I. Curve Manipulation for 3D-Shape Reproduction

When a hand intersects the shell of a three dimensional simulated shape, the current solution is to find a closed curve that best represents the intersection that is to be described to the user and actuate that path. Since it is a closed path, the system may use a single control point moving along the path with a given speed (and thus frequency) in order to produce it in mid-air haptics without much noise being created. But this suffers from two important limitations. First, only shapes containing paths that can be conveniently interpreted as closed curved contours may be represented. A shape containing open contours is not as suitable for haptic representation although the path can be bent back upon itself, this changes the haptic effect. Second, if the constraint of a single control point is imposed (since each control point requires computation, it is prudent to use them sparingly) only one contour may be used. If one contour is effective at providing feedback for one finger and another contour is effective for the palm, both cannot be used without recourse to multiple control points, which would split the capacity for output from a given device to provide multiple points of feedback. These drawbacks are in addition to the power limitations of the single contour approach. As the length of the contour increases, the speed that the point moves increases the point become spread more thinly, eventually decreasing its effective haptic response.

Instead of taking a single contour, finding the set of all intersections with the parts of the user on which the haptic effect is to be elicited, as line or curve segments or surfaces is the best solution. But this would involve creating many open curves, and thus entail creating and destroying the point many times at each beginning and end point respectively, Alternatively, this would require using many control points in order to create separate haptic effects for each intersection so that each region of haptic feedback may stay spatially locked. For example, in the specific case of a hand intersection, each finger and potentially also the palm must have separate haptic effects. This requires many points of contact, but so that the each control point may stay local to the point of contact or intersection, the existing solution is either loud (creation and destruction of a single point) or costly in device power and compute (many points). To overcome this requirement for multiple disconnected paths, taking the set of all intersections and then optimizing for the single shortest path that traverses each of them is much more effective. But this action will move across the shape in a linear fashion with a beginning and an end, which will create a control point at the beginning, traverse the shape and destroy the control point at the end, before recreating it at the beginning of the shape. This continuous creation and destruction, although an improvement, remains incompatible with a quiet system.

By connecting the beginning and end of the curves into a single closed curve and traversing it at the appropriate speed the desired haptic effect can be generated with significantly reduced noise. Further, this does not preclude amplitude modulation of the points as they traverse the given curves. This path is illustrated in FIG. 1.

Shown in FIG. 1 is a model 100 of a hand 110 interacting with a haptically generated virtual object 120. The points 132, 134, 136, 138 where the hand touches the virtual shape are connected into a path 140, and this path 140 is actuated, creating the feeling while moving the focus smoothly. Smooth movement of the focus along the path 140 without interruption minimizes any unwanted audible noise, resulting in correct, strong haptic sensation across multiple fingers while operating quietly. In addition, although FIG. 1 shows a hand 110, any body part may be used.

Because the curve connects each curve segment, the system determines whether to traverse them in a preset clockwise or counterclockwise motion. This motion is relative to a normal vector which may be defined relative to the user (such as a local coordinate space relative to the geometry of their hand), intersections or the geometry. Alternatively, it may be useful to use points traversing multiple curves in order to provide feedback for more than one user or hand.

One drawback of this approach is that in order to close the curve the user himself/herself must be avoided, in order to prevent spurious haptic effects being created on the user at locations where intersections did not occur. To achieve this in the context of the users' hand, the curve should be either made to go over or under the hand (and thus defocusing at the location of the hand) or around the hand. Alternatively, the state space of the transducers may be interpolated between each endpoint, removing the need to find a spatially coherent approach to closing the curve. The state of the ultrasonic waves in the acoustic field is driven linearly by the complex valued activation coefficients of each transducer. This requires, grouping all of these complex values for all transducers into a high-dimensional phase space and linearly interpolating between a first state in the space (that represents, for instance, an end point on one curve) and a second state (that represents an initial point at a different location). The linear interpolation must also apply to the acoustic fields resulting from the actuation of the newly created states in the intermediate stages. It should be noted that in these intermediate stages between the two states, the control point does not necessarily have any particular location. But because the linear interpolation applies to the produced acoustic field, the field must smoothly vary in time and therefore also could serve to also greatly reduce audible output while achieving the movement between points.

Another potentially more compatible approach is to change the speed at which the control point is moving along the curve. To start, the solution computes the length of the curve required to complete the closed path, traversing each intersection curve segment in turn creating haptic effects at each intersection with the user. Next, first considering only the parts of the path that do not contribute to the haptic effects, the solution traverses these haptically unnecessary curves at the fastest possible speed to avoid wasting power on them. This reduces the haptic actuation of these curves and is beneficial in two ways. First, the amount of time taken to traverse these parts of the path is reduced; second, if the user is intersected in error during this time the amount of haptic effect that he/she would receive would be minimal. Nevertheless, in the limit of this technique, it will behave as creation and destruction of the control point, creating pops and clicks as before. For this reason, it is useful to consider a speed limit that lessens the effects generated by discontinuities between the states of the acoustic field. The result of this technique is to create a control point that accelerates and decelerates between haptic regions. By considering a curve harboring haptic effects in this way, there may be the requirement that the curve must cycle at a haptically active frequency. This has the effect of creating a time “budget” of a closed path cycle period, part of which may be spent on the haptically active parts of the path and the remainder used to reduce audible noise. In this light, the remaining time in the haptically-actuated curve length is split between the parts of the path that require haptics. This time “budget” must ensure that these intersections receive as much of the energy from the array as possible so that haptic effects have the time (and thus power) to be realized at the intersections with the user. In this way, the device may be quiet and behave in a fashion that maximizes the energy deposited on the parts of the user to be haptically actuated such as the fingers.

Another issue is that the virtual shape or user position may dynamically change while haptic effects are being produced. For example, at the current time t₀ a closed curve containing haptic effects is in current use. At the next time step in the future t₁, a new curve containing haptic effects is synthesized to reflect the changes in the virtual shape. In this case, a further curve must be plotted that allows the point to traverse from the old curve representing the state of the virtual and physical world at time t₀ to the new curve representing the state at time t₁ without discontinuity. Selecting the closest point on each curve, and constructing a path between them that allows the point to move from the t₀ curve to the t₁ curve may be used to achieve this. This may also benefit from the introduction of a speed limit similarly to the unactuated portion of the haptic path described previously to limit the unusable traversal time from one curve to the other.

II. Touching Virtual Three-dimensional Objects

A. Introduction

This disclosure is related to a system where a user interacts with virtual 3D-content by a tracking system monitoring his/her hands, using a physics engine to update the position and properties of the virtual content, and a haptic feedback system providing haptic information to the user. The haptic system may be mid-air haptic feedback. A haptic impulse may be applied to the user when his or her hand contacts a virtual object. This impulse may be applied at the exact location of the contact. Or the user's hand is formed into a skeletal model and the impulse is applied to each bone in the skeleton that contacts the object.

The strength and duration of the impulse is adjusted based on output from the physics engine, including momentum and physical properties of the hand and virtual object. The waveform of the haptic impulse may be adjusted based on the above physics engine outputs. A weaker haptic sensation may be applied to parts of the hand when the object is released or when contact with it ceases. In contrast, there is no haptic feedback applied during continuous holding.

Haptic feedback may be applied to the opposite side of the hand to which the contact is occurring. And haptic feedback follows the hand for the decaying amplitude experienced after contact.

B. Interacting with 3D Objects

A system may have a user who interacts with virtual 3D-content by a tracking system monitoring his/her hands, using a physics engine to update the position and properties of the virtual content, and a haptic feedback system providing haptic information to the user. The haptic system may use mid-air haptic feedback. A haptic impulse may be applied to the user when his or her hand contacts a virtual object. This impulse may be applied at the exact location of the contact. The user's hand may be formed into a skeletal model and the impulse is applied to each bone in the skeleton that contacts the object. The strength and duration of the impulse may be adjusted based on output from the physics engine, including momentum and physical properties of the hand and virtual object. The waveform of the haptic impulse may be adjusted based on the above physics engine outputs.

A weaker haptic sensation may be applied to parts of the hand when the object is release or when contact with it ceases. Furthermore, there may be no haptic feedback applied during continuous holding. Haptic feedback may be applied to the opposite side of the hand to which the contact is occurring. In addition, haptic feedback follows the hand for the decaying amplitude experienced after contact.

Specifically, when a user is engaged in virtual reality that has been enhanced by the addition of a mid-air haptic device, a hand tracking system may be employed to track their hands in order to determine the position and orientation of each hand, finger and joint. This information can be input into the virtual world in the form of a virtual hand object that is capable of interactions with virtual objects, albeit only one way. This is because the physical hand has one-to-one correspondence with, and puppets, the virtual hand. The virtual hand has the ability to interact with virtual objects, generally through some form of physics engine. (A physics engine is understood as one of the components of a game engine.)

For rigid bodies that do not change shape, a physics engine will generally be responsible for managing the simulated forces and torques applied to the objects in the virtual world and the resulting changes in linear, and angular, velocity and acceleration, before generating the corresponding changes in spatial transformation for each object or object part represented. Other object types may imply additional management or information, and may also include more complex simulation of physical phenomena.

Nonetheless, fundamentally, interactions between virtual objects are mediated by their simulated forces and torques, which must be found before these interactions can be simulated. In order to find these simulated forces and torques, the physics engine will ensure virtual objects are tested for “collisions”, which is effectively testing for future situations in which objects in the virtual scene might intersect. This generates collision information which feeds the management portion of the physics engine with positions, velocities, forces and torques. This information can also be used to inform a haptics engine about what a user might feel if parts of the user extended into the virtual world. But this machine is unable to affect the physical user due to the virtual objects not being able to physically collide with the user. In the case of the users' hand, the virtual objects do not affect the virtual hand and thus physical hand. This disconnect causes a loss of immersion in the virtual world.

A satisfying experience results if the mid-air haptic device is configured to provide feedback to the user at the point at which an impulse (a short sharp force, during which the force changes in time sharply), contact or similar interaction in which the force changes sharply in time is applied to the virtual object by the user, or on the virtual representation of the user by the virtual object. A haptic impulse that mirrors this may be created by generating a similarly short haptic effect. This is effective because of the occurrence of an illusion of two-way interaction due to the cross-modal effects in play at this setting. This haptic impulse may then be adjusted using the trajectory of the object and the hand, along with the simulated momentum, restitution and other physical properties of the object and hand.

The feedback may then be applied with an intensity and waveform appropriate and proportional to the impulse applied. Due to the proprioceptive and cross-modal phenomena in effect in this situation, in the case of the users' hand, the closest addressable part of the hand may be used (including through the hand). The user will still perceive this haptic effect to be originating at the location of the collision. Thus, if the impulse occurs on the back of the hand, due to the relative vibrotactile receptiveness of glabrous skin on the opposite side of the hand, this other side would be actuated instead of the real location of the contact. Perceptual effects then cause the user to believe that the impulse was stimulated in the correct location.

In addition, the user in a virtual world may want to pick up virtual objects. Since picking up and dropping objects is a common activity, it is important to preserve the user experience through this process. When picking up an object, the user receives impulses corresponding to the grip placed on the object. During the grip time, no feedback is applied. When the object is released or dropped from the users' virtual grip, a reduced impulse is used to indicate that the object has been released.

In many cases, the feedback follows the part of the hand to which the impulse was directed since it is modeling the vibration of and subsequent haptic effect on the skin at the point of contact. The feeling on contact can be accentuated, potentially using a decaying amplitude on the point of contact on the hand, to create a more persuasive effect and overcome the short duration of each impulse. The duration of the impulse may also be driven by data from the physics engine.

III. Spatio-Temporally Modulated Sound

A. Sound from Ultrasound Via an Alternate Mechanism

The noise generated from certain haptic-based interactions is often an unwanted side effect of the haptic activity. But it is possible to use the property of noise generation to produce desired sound effects. Precisely controlling disturbances in haptic systems that generate low frequency noise provides the capacity to generate broadband signals by spatially moving the focusing points. This enables the creation of sound from ultrasound using an entirely different mechanism from existing parametric audio applications. Rather than modulating a point or beam in amplitude, a control point may instead be moved in a trajectory that encodes the waveform. This turns the control point into an audio source.

B. Plotting Spatial Trajectories

Turning to FIG. 2, shown is a representation 200 of a focus point 210 spinning in the air via path 220, which generates a sound wave 230 each time it moves along the path 220. The motion can be modified to reproduce a sound that is audible to the human ear in a localized way without amplitude modulating the focusing system.

The easiest way to generate these trajectories is to take an existing sound source and reinterpret it as a linear path along which a focus point moves to create a sound wave. At each point in time, the level in a digitally sampled sound channel may be interpreted as a parameterized position along this path that the focus is to be created. By creating foci at these positions at the sampled time offsets, an audible sound can be created along a 1D open curve path.

Alternatively, such an existing digitally sampled sound source may be decomposed into in-phase and quadrature components, that is into the real and imaginary parts of a complex signal that describes the audio. This is not trivial for an audio source since it is wideband. Thus, the most effective way to achieve the desired result is to apply a Fourier transform to the signal and apply π/2 phase offset. The standard approaches concerning windowing, blocking of the signal and transitions in phase may also be used. This generates the imaginary component of the sampled audio signal. Since the signal may be represented as a complex value, the signal may be mapped onto a 1D closed curve, or a 2D circle, plane or surface. Moving the point around or remapping these 2D coordinates into the space will produce sound waves, thereby recreating this audio signal. In this way, the audio signal may be generated in a 2D area.

This effect may also be used in a third dimension to provide the phase cues that govern stereo audio (potentially with a single sound source) for systems that cannot create strong foci in disparate positions. Similarly, for multiple focus points, multiple sound sources may be synthesized. This enables multi-channel audio that can be created from focus points in the air. These focus points may also provide haptic feedback.

IV. Generative Haptics from Audio Exemplars

Control points may be changed in amplitude many thousands of times a second, although only low frequencies can be detected as haptics. Through non-linearity effects, higher frequencies can be reproduced. Updating the control points quickly yields the ability to produce many frequencies at once, giving the ability to reproduce audio in some sense. However, audio does not have information in frequency ranges that are haptically effective.

Designing haptic effects in the air is challenging as due to the sensitivity of the skin only some bands of frequencies are available for haptic use. Due to this, effects can be created that create pleasurable sounds from the array that do not convey haptics and conversely haptic effects that do not sound pleasing. Due to these reasons, an easier approach to designing mid-air haptic effects would be valuable.

Creating a haptic sensation using a sound as input may be achieved in a number of ways. The frequencies of the sound that are in the haptic range may be amplified until a haptic threshold is reached. Alternatively, the initial sound may have frequencies that are haptically active added to it. The original sound may be analyzed and a profile constructed. This profile may then be used to generate a haptic effect. This may be constructed using the qualities present in the sound, allowing the created haptic texture to take on aspects of the exemplar such as speed, rhythm or texture. The sound may be processed into a haptic effect using a variety of processing mechanisms. These mechanisms may be configured to emphasize certain aspects in the resultant haptic effect while potentially ignoring others. This can also be achieved by extracting a feature set from the sound before processing the sound into a haptic effect. A feature set could also contain discontinuities inferred from the sound, such as for example a plosive phoneme being interpreted in this way.

Specifically, this can be implemented by (1) extracting a feature set from a sound profile before assigning the plurality of amplitudes to the control point over a preset time period; and (2) applying a feature set to the plurality of amplitudes assigned to the control point over a preset time period. Alternatively, it can implemented by (1) extracting a feature set from the plurality of amplitudes to the control point over a preset time period; and (2) applying the feature set to the sound profile.

A library of haptic effects may be searched and sorted based on the extracted feature set alongside similarity metrics in order to provide feedback to a haptic author. This haptic author may use the sound interface to describe basic components of a haptic effect, which can then be edited and mixed further. The haptic effect may also be mixed back into the waveform, resulting in a combination of audio and haptic effects. This may occur automatically or via a range of processing styles. These may involve accentuating or augmenting particular haptic effects in order to stylize the effects. The processing styles may be concatenated or remixed to create new processing schemes. Labels can be attached to these processing mechanisms and haptic effects, such as “buzzy” or “warm”. These may be used to adjust existing haptic effects, adjust audio inputs to be synthesized into haptic effects or search for existing effects that are examples of the style described.

V. Conclusion

The various features of the foregoing embodiments may be selected and combined to produce numerous variations of improved haptic systems.

In the foregoing specification, specific embodiments have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings.

The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.

Moreover, in this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” “has”, “having,” “includes”, “including,” “contains”, “containing” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. The terms “a” and “an” are defined as one or more unless explicitly stated otherwise herein. The terms “substantially”, “essentially”, “approximately”, “about” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art. The term “coupled” as used herein is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed.

The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter. 

1-6. (canceled)
 7. A method comprising: a user interacting with virtual three-dimensional content using the user's hands; a tracking system monitoring the user's hands; a physics engine updating the properties of the virtual three-dimensional content; and a mid-air haptic feedback system providing haptic information to the user.
 8. The method as in claim 7, further comprising a first haptic impulse applied to at least one of the user's hands when the at least one of the user's hands contacts the virtual three-dimensional content.
 9. The method as in claim 7, wherein the first haptic impulse is applied at the location of the contact of the at least one of the user's hands with the virtual three-dimensional content.
 10. The method as in claim 8, further comprising forming the at least one of the user's hands into a skeletal model having a plurality of bones, and wherein the first haptic impulse is applied to the plurality of bones of the at least one of the user's hands that contacts the virtual three-dimensional content.
 11. The method as in claim 10, wherein the strength and duration of the first haptic impulse is adjusted based on output from the physics engine.
 12. The method as in claim 10, wherein the waveform of the first haptic impulse is adjusted based on output from the physics engine.
 13. The method as in claim 10, further comprising a second haptic impulse applied to the parts of the at least one of the user's hands that release contact with the virtual three-dimensional content.
 14. The method as in claim 13, wherein the second haptic impulse is weaker than the first haptic impulse.
 15. The method as in claim 10, wherein the first haptic impulse applied to at least one of the user's hands ceases when the at least one of the user's hands maintains contact with the virtual three-dimensional content.
 16. The method of claim 10 wherein the skeleton of the at least one of the user's hands has a first side and a second side, wherein the contact of the at least one of the user's hands occurs on the first side and the haptic impulse occurs on the second side.
 17. The method as in claim 10, wherein the first haptic impulse applied to at least one of the user's hands follows the at least one of the user's hand using decaying amplitude when the at least one of the user's hands terminates contact with the virtual three-dimensional content. 18-28. (canceled) 